export interface Custom {
  // 表单数据
  Tform: {
    i: { model: string; type: number; value: any; picker: number | number[]; child: { label: string }[] }
  }
  // 提示文字
  Tplaceholder: {
    i: { type: number; placeholder: string; model: string }
  }
  // 多选
  TcheckBoxType: {
    i: { picker: number[]; value: string[]; child: { label: string }[] }
  }
  // 单选
  TradioType: {
    i: { picker: string; value: string; child: { label: string }[] }
  }
  // 高亮已选（多选）
  TisCheckBox: {
    i: { picker: number[] }
  }
  // 高亮已选（单选）
  TisRadio: {
    i: { picker: string; child: { label: string }[] }
  }
  // picker
  Tpicker: {
    e: { target: { dataset: { item: { index: number; type: number } }; value: string } }
  }
  // 上传图片
  Tupload: {
    i: { value: string[]; limit: number }
  }
  // 删除图片
  TdeletePic: {
    i: { value: string[] }
  }
  // 默认高亮（下拉）
  Tdefault: {
    picker: { value: string }
    check: { value: string[] }
    child: string[] | { label: string }[]
  }
}

// 默认高亮（下拉）
const defaultPicker = (value: Custom['Tdefault']['picker']['value'], child: Custom['Tdefault']['child']) => {
  return child.findIndex((ii) => ii.label ?? ii == value)
}

// 默认高亮（多选）
const defaultCheckbox = (value: Custom['Tdefault']['check']['value'], child: Custom['Tdefault']['child']) => {
  let lightArr: number[]
  value.forEach((i) => {
    const index = child.findIndex((ii) => ii.label ?? ii.label == i)
    lightArr.push(index)
  })
  return lightArr
}

// 初始化
export function initData(i) {
  // 不等于 多选 || 上传图片 || 上传视频
  if (i.type != 6 && i.type != 9 && i.type != 10) {
    i.value = ''
  } else {
    i.value = []
  }

  // picker
  if (i.type > 2 && i.type < 11) {
    // 不等于 多选 || 上传图片 || 上传视频
    if (i.type != 6 && i.type != 9 && i.type != 10) {
      i.picker = -1
      if (i.type == 3 || i.type == 7) {
        i.child.forEach((item, index) => {
          i.child[index] = item.label ?? item
        })
      }
    } else {
      if (i.type == 7) {
        i.child.forEach((item, index) => {
          i.child[index] = item.label ?? item
        })
      }
      i.picker = []
    }
  }
}

// 处理默认数据
export function processData(i) {
  console.log(i.type)

  // 默认高亮（多选）
  if (i.type == 6) {
    // i.picker = defaultCheckbox(i.value, i.child)
	i.child.forEach(item=>{
		item.choose=false
	})
	//对于后台默认选择的情况进行双层循环
	i.value.forEach(itemD=>{
		i.child.forEach(itemDS=>{
			if(itemD==itemDS.label){
				itemDS.choose=true
			}
		})
	})
  }
  // 默认高亮（单选）
  else if (i.type == 7) {
    i.picker = i.value
  }
  // 默认高亮（下拉）
  else if (i.type == 3) {
    i.picker = defaultPicker(i.value, i.child)
  }
}
